package collection;

import java.util.*;

/**
 * @Description: 测试Collection接口
 * @Author Stark
 * @Date 2022/3/31 20:12
 **/
public class CollectionTest {
    public static void testCollection() {
//        List<String> l = new ArrayList<>();
//        l.add("aa");
//        l.add("bb");
//        l.add("cc");
//        for (String str : l) {
//            System.out.println(str);
//        }
        // 创建Collection接口的实现

        Collection collection = new ArrayList();
        // 添加元素
        collection.add("嘻嘻");
        collection.iterator();
        String src = "????";
        collection.add(src);
        System.out.println(collection);

        // 创建Collection的实现
        Collection<String> coll = new HashSet<>();
        coll.add("?");
        coll.add("?");
        coll.add("?");
        System.out.println(coll);
        // 添加一个集合数据
        collection.addAll(coll);
        collection.add(10);
        // 输出集合的长度
        System.out.println(collection);
        // 判断是否包含
        System.out.println(collection.contains("?"));
        // 移除元素
        collection.remove("?");
        // 添加对象
        collection.add(new Person("张三", 23, 5000d));
        // 当认为两个对象属性一致，相等时候，需重写hashCode 和 equals方法
        System.out.println(collection.contains(new Person("张三", 23, 5000d)));
        System.out.println(collection);

        System.out.println("-------");
        collection.add(null);

        Collection<String> collection1 = new ArrayList<>();
        collection1.add("嘻嘻");
        collection1.add("?");
        // 求两个集合的交集(只保留collection1存在的元素)
        collection.retainAll(collection1);
        System.out.println(collection);
        // 清空元素
        collection.clear();
        System.out.println(collection);
    }

    public static void main(String[] args) {
        testCollection();
    }
}
class Person{
    private String name;
    private int age;
    private double num;

    public Person(String name, int age, double num) {
        this.name = name;
        this.age = age;
        this.num = num;
    }
}